home *** CD-ROM | disk | FTP | other *** search
- 100 'Day of Week ("DAYOFWEEK")
- 110 CLS
- 120 COLOR 0,15: PRINT "Day of Week": COLOR 15,0
- 130 PRINT
- 140 ' Get names of days
- 150 DIM DAYS$(6)
- 160 FOR N = 0 TO 6
- 170 READ DAYS$(N)
- 180 NEXT N
- 190 DATA Saturday, Sunday, Monday, Tuesday
- 200 DATA Wednesday, Thursday, Friday
- 210 ' Get date from user
- 220 GOSUB 1000
- 230 GOSUB 2000
- 240 ' Calculate factor for date
- 250 FACTOR = 365 * YEAR + DAY + 31 * (MONTH-1)
- 260 'January or February
- 270 IF MONTH <= 2 THEN FACTOR = FACTOR + (YEAR-1) \ 4 - INT(3/4 * ( (YEAR-1) \ 100 + 1) )
- 280 'March or later
- 290 IF MONTH >= 3 THEN FACTOR = FACTOR - INT(.4 * MONTH + 2.3) + YEAR\4 - INT(3/4 * (YEAR\100 + 1) )
- 300 FACTOR = FACTOR - INT(FACTOR / 7) * 7
- 310 ' Print day of week
- 320 PRINT
- 330 PRINT DAYS$(FACTOR)
- 340 END
- 990 ' Subroutine to set up list with number of days in months
- 1000 DIM NDAYS(12)
- 1010 FOR N = 1 TO 12
- 1020 READ NDAYS(N)
- 1030 NEXT N
- 1040 'Number of days in months
- 1050 DATA 31, 28, 31, 30
- 1060 DATA 31, 30, 31, 31
- 1070 DATA 30, 31, 30, 31
- 1080 RETURN
- 1990 ' Subroutine to let user enter date
- 2000 INPUT "Month (1-12): ", MONTH
- 2010 IF (MONTH < 1) OR (MONTH > 12) THEN PRINT " *No such month *": GOTO 2000
- 2020 INPUT "Day (1-31): ", DAY
- 2030 INPUT "Year: ", YEAR
- 2040 IF (YEAR < 1900) OR (YEAR > 2100) THEN PRINT "Invalid year": GOTO 2000
- 2050 'Check for leap year
- 2060 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
- 2070 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
- 2080 'Check for valid date
- 2090 IF DAY > NDAYS(MONTH) THEN PRINT "* No such day *": GOTO 2000
- 2100 RETURN